﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ComponentModel;
using System.Windows.Forms;

namespace ShadingTab
{
    public class ProjectVariables 
    {
        string path;
        double latiude;
        double longtitude;
        double utmN;
        double utmE;
        Int16 timeZome;
        String weaState;
        String weaCity;
        string weatherSta = "";
        int nIdwSta = 5;

        int lyrBuilding = -1;
        string lyrBuildingName;
        int lryTree = -1;
        string lyrTreeName;

        double effectiveShadAng = 20;

        bool demChecked = false;
        string lyrDEMname = "xyz";

        #region Location Variables

        [Category("Misc.")]
        [ReadOnly(true)]
        public double Latiude
        {
            get { return latiude; }
            set { latiude = value; }
        }

        [Category("Misc.")]
        [ReadOnly(true)]
        public double Longtitude
        {
            get { return longtitude; }
            set { longtitude = value; }
        }

        [Category("Misc.")]
        [ReadOnly(true)]
        public double UtmN
        {
            get { return utmN; }
            set { utmN = value; }
        }

        [Category("Misc.")]
        [ReadOnly(true)]
        public double UtmE
        {
            get { return utmE; }
            set { utmE = value; }
        }

        [Category("Misc.")]
        [ReadOnly(true)]
        public Int16 TimeZome
        {
            get { return timeZome; }
            set { timeZome = value; }
        }


        #endregion Location Variables

        #region Weather Statin Variables

        [Category("Configuration")]
        [DisplayName("Weather Station File")]
        public string WeatherSta
        {
            get { return weatherSta; }
            set { weatherSta = value; }
        }

        [Category("Configuration")]
        public string Path
        {
            get { return path; }
            set { path = value; }
        }

        [Category("Configuration")]
        [DisplayName("State of Weather Station")]
        public string WeaState
        {
            get { return weaState; }
            set { weaState = value; }
        }

        [Category("Configuration")]
        [DisplayName("City of Weather Station")]
        public string WeaCity
        {
            get { return weaCity; }
            set { weaCity = value; }
        }

        public int NIdwSta
        {        
            get { return nIdwSta; }
            set { nIdwSta = value; }          
        }
        #endregion Weather Statin Variables

        #region building/tree/shadow Shapefile Variables
        [Category("Legend Index")]
        [ReadOnly(true)]
        [DisplayName("Tree Layer")]
        public int LyrTree
        {
            get { return lryTree; }
            set { lryTree = value; }

        }

        [Category("Layer Names")]
        [DisplayName("Tree Layer")]
        public string LyrTreeName
        {
            get { return lyrTreeName; }
            set { lyrTreeName = value; }
        }

        [Category("Layer Names")]
        [DisplayName("Building Layer")]
        public string LyrBuildingName
        {
            get { return lyrBuildingName; }
            set { lyrBuildingName = value; }
        }

        [Category("Legend Index")]
        [ReadOnly(true)]
        [DisplayName("Building Layer")]
        public int LyrBuilding
        {
            get { return lyrBuilding; }
            set { lyrBuilding = value; }
        }

        [Category("Layer Names")]
        [DisplayName("DEM")]
        public string LyrDEMname
        {
            get { return lyrDEMname; }
            set { lyrDEMname = value; }
        }
        #endregion

             
        [Category("Misc.")]
        [ReadOnly(false)]
        public double EffectiveShadAng
        {
            get { return effectiveShadAng; }
            set { effectiveShadAng = value; }
        }

        [Browsable(false)]
        public bool DemChecked
        {
            get { return demChecked; }
            set { demChecked = value; }
        }


    }
}
